package com.hangwei.aicabinet.net;


import com.hangwei.aicabinet.model.bean.AdminOnAndOut;
import com.hangwei.aicabinet.model.bean.AdminUpLoad;
import com.hangwei.aicabinet.model.bean.AllCabinetInfo;
import com.hangwei.aicabinet.model.bean.DoorStatus;
import com.hangwei.aicabinet.model.bean.Login;
import com.hangwei.aicabinet.model.bean.OrderBean;

import java.util.ArrayList;

import retrofit2.http.POST;
import retrofit2.http.Query;
import rx.Observable;

/**
 * Author: zlc
 * Date: 2017/5/12.
 * 网络请求接口
 */

public interface ResponseInfoAPI {

    //绑定界面柜子编号列表
    @POST("open/pad/ins/getAllCabinetInfo")
    Observable<ResponseInfo<AllCabinetInfo>> getAllCabinetInfo();

    //绑定界面点击 绑定 （绑定柜子接口）
    @POST("open/pad/ins/initCabinet")
    Observable<ResponseInfo<String>> initCabinet(@Query("cabinetId") String id);

    @POST("open/pad/sys/listenLogin")
    Observable<ResponseInfo<Login>> listenLogin(@Query("cabinetId") String id);

    //扫码登录成功后跳到主页面，主页面所有订单的返回
    @POST("open/pad/order/getOrderAndEntryList")
    Observable<ResponseInfo<ArrayList<OrderBean>>>
    getOrderEntryList(@Query("personId") String string, @Query("pagenumber") int page,
                      @Query("pagesize") int i,@Query("cabinetId") String string1,@Query("orderPstatus") String orderPstatus);

    //开锁的时候跟新服务器锁状态
    @POST("open/pad/ins/updateLockStatus")
    Observable<ResponseInfo<String>> updateLockStatus(@Query("spaceNum") String lockNum, @Query("doOrder") int i);

    //退出平板登录
    @POST("open/pad/sys/logoutByPad")
    Observable<ResponseInfo<String>> logout(@Query("cabinetId") String string, @Query("key") String s);

    //关闭柜门，轮询结束后上传标签
    @POST("open/pad/order/doCheckOrders")
    Observable<ResponseInfo<String>>
    doCheckOrders(@Query("rfIDs") String rf,@Query("orderId") String id,
                  @Query("spaceNum") String lock_001,@Query("cabinetType")String type);

    @POST("open/pad/ins/closeDoorForAdmin")
    Observable<ResponseInfo<AdminUpLoad>>
    closeDoorForAdmin(@Query("rfIDs")String rfString,@Query("spaceNum")String positionNum);

    @POST("open/pad/ins/getBusySpace")
    Observable<ResponseInfo<DoorStatus>> getBusySpace(@Query("cabinetID") String string);

    @POST("open/pad/ins/offlineOrUpline")
    Observable<ResponseInfo<AdminOnAndOut>>
    toolsOnlineAndOutline(@Query("rfIDs")String rfString,@Query("spaceNum")String positionNum);


//    @POST("open/mobile/sys/doLoginMobile")
//    Observable<ResponseInfo<LoginMobile>> doLoginMobile(@Query("username") String userName, @Query("password") String password);
//
//    @POST("open/api/token/get")
//    Observable<ResponseInfo<Token>> getToken(@Query("appid") String appid, @Query("sign") String sign);
//
//    @POST("open/mobile/sys/getVersion")
//    Observable<ResponseInfo<ServerVersion>> getServerVersion(@Query("name") String android);
//
//    @POST("open/mobile/base/getUserInfo")
//    Observable<ResponseInfo<UserInfo>> getUserInfo(@Query("userid") String string);
//
//    @POST("open/mobile/order/getOrderCountByMobile")
//    Observable<ResponseInfo<HomeData>> getHomeData(@Query("personid") String personId);
//
//    @POST("open/mobile/order/haveSendingOrders")
//    Observable<ResponseInfo<List<CheckOrderBean>>> getCheckOrder(@Query("personid") String string);
//
//    @POST("open/mobile/order/insertSendTrace")
//    Observable<ResponseInfo<UpdateLocation>> updateLocation(@Query("personid") String string, @Query("orderid") String orderid,
//                                                            @Query("position") String s);
//
//    @POST("open/mobile/order/getOrderList")
//    Observable<ResponseInfo<ArrayList<WaitBean>>> getOrderList(@Query("personid") String personid, @Query("pstatus") String pstatus,
//                                                               @Query("pagenumber") int pagenumber, @Query("pagesize") int pagesize);
//
//    @POST("open/mobile/order/getDeliveryOrderList")
//    Observable<ResponseInfo<ArrayList<OrderCategory>>> getDeliveryOrderList(@Query("personid") String personid, @Query("pstatus") String pstatus,
//                                                                            @Query("pagenumber") int pagenumber, @Query("pagesize") int pagesize);
//
//    @POST("open/mobile/order/getOrderInfo")
//    Observable<ResponseInfo<OrderDetail>> getOrderDetail(@Query("id") String id);
//
//    @POST("open/mobile/order/getOrderEntryByOrderId")
//    Observable<ResponseInfo<ArrayList<MaterielDetail>>>
//    getMaterielDetail(@Query("orderid") String param, @Query("pagenumber") int page, @Query("pagesize") int i);
//
//    @POST("open/mobile/order/getOrderPstatus")
//    Observable<ResponseInfo<CheckOrderBuild>> getOrderCanBuild(@Query("id") String id);
//
//    @POST("open/mobile/base/getPersonpoolbyM")
//    Observable<ResponseInfo<ArrayList<TogetherPeople>>> getPeopleList(@Query("airportid") String string, @Query("pagenumber") int page, @Query("pagesize") int i);
//
//    @POST("open/mobile/base/getVehiclebyM")
//    Observable<ResponseInfo<ArrayList<CarNum>>>
//    getCarNum(@Query("pagenumber") int page, @Query("pagesize") int i);
//
//    @POST("open/mobile/order/adddelDo")
//    Observable<ResponseInfo<String>>
//    adddelDo(@Query("orderid") String id, @Query("personid") String string, @Query("curPosition") String s);
//
//    @POST("open/mobile/base/insertDatabyM")
//    Observable<ResponseInfo<String>>
//    insertDatabyM(@Query("orderid") String id, @Query("personlist") String s, @Query("deviceid") String o, @Query("vehicleid") String id1);
//
//    @POST("open/mobile/order/getOrderEntryByOrderId")
//    Observable<ResponseInfo<ArrayList<CheckRemark>>> getAllMateriaData(@Query("orderid") String id, @Query("dataType") String getAllMateriaData);
//
//    @POST("open/mobile/order/img")
//    Observable<ResponseInfo<UpLoadImage>>
//    uploadImage(@Query("filename") String picturePath, @Query("base64") String base64Img, @Query("step") int i, @Query("orderid") String id);
//
//    @POST("open/mobile/order/updateDvSteps")
//    Observable<ResponseInfo<CheckRemarkSave>>
//    updateDvSteps(@Query("orderid") String id, @Query("content") String trim,
//                  @Query("stepnum") String hl, @Query("pid") String string);
//
//    @POST("open/mobile/order/isSDOrderOvertime")
//    Observable<ResponseInfo<CheckOverTime>> checkOverTime(@Query("orderid") String id);
//
//    @POST("open/mobile/order/updateDvSteps")
//    Observable<ResponseInfo<SaveService>>
//    saveService(@Query("content") String des, @Query("stepnum") String sd, @Query("pid") String pid,
//                @Query("toreason") String overTime, @Query("orderid") String id);
//
//    @POST("open/mobile/order/getOrderListOfCustomer")
//    Observable<ResponseInfo<Test>> test(@Query("personid") String s);
//
//    @POST("open/mobile/base/bindDDLByMobile")
//    Observable<ResponseInfo<ArrayList<Destination>>> getDestination(@Query("airportId") String string, @Query("pagenumber") int page, @Query("pagesize") int i);
//
//    @POST("open/mobile/order/getOrderList")
//    Observable<ResponseInfo<ArrayList<WaitBean>>>
//    searchWaitData(@Query("personid") String string, @Query("pstatus") String s, @Query("pagenumber") int i, @Query("pagesize") int i1,
//                   @Query("endstock") String id, @Query("lorderno") String faultNum, @Query("numorder") String orderNum);
//
//    @POST("open/mobile/order/getDeliveryOrderList")
//    Observable<ResponseInfo<ArrayList<OrderCategory>>>
//    searchDispatchData(@Query("personid") String string, @Query("pstatus") String s, @Query("deliveryordernum") String key,
//                       @Query("pagenumber") int i, @Query("pagesize") int i1);
//
//    @POST("open/mobile/order/ListenOrder")
//    Observable<ResponseInfo<ListenQR>> listenOrder(@Query("orderid") String id);
//

//    @Multipart
//    @POST("open/mobile/order/img")
//    Observable<ResponseInfo<String>> upLoadImage(@Part() MultipartBody.Part body, @Query("orderid") String id, @Query("filename")String filename );
}



